<TITLE>BGI Documentation for 
setlinestyle
</TITLE>
<H2>
setlinestyle
</H2>
<HR>
<DL>


<DT><B>Syntax</B><DD>
<PRE>
#include &lt;graphics.h&gt;
void setlinestyle(int linestyle, unsigned upattern, int thickness);
</PRE>



<DT><B>Description</B><DD>
setlinestyle sets the style for all lines drawn by line, lineto, rectangle, drawpoly, and so on.
<P>
The linesettingstype structure is defined in graphics.h as follows:
<PRE>
struct linesettingstype {
   int linestyle;
   unsigned upattern;
   int thickness;
};
</PRE>
linestyle specifies in which of several styles subsequent lines will be drawn (such as solid, dotted, centered, dashed). The enumeration line_styles, which is defined in graphics.h, gives names to these operators:
<TABLE>
<TR><TD><B>Name</B><TD><B>Value&nbsp;&nbsp;&nbsp;</B><TD><B>Description
<TR><TD>SOLID_LINE	<TD>0	<TD>Solid line
<TR><TD>DOTTED_LINE	<TD>1	<TD>Dotted line
<TR><TD>CENTER_LINE	<TD>2	<TD>Centered line
<TR><TD>DASHED_LINE	<TD>3	<TD>Dashed line
<TR><TD>USERBIT_LINE&nbsp;&nbsp;&nbsp;	<TD>4	<TD>User-defined line style
</TABLE>
thickness specifies whether the width of subsequent lines drawn will
be normal or thick.
<TABLE>
<TR><TD><B>Name</B><TD><B>Value&nbsp;&nbsp;&nbsp;</B><TD><B>Description
<TR><TD>NORM_WIDTH	<TD>1	<TD>1 pixel wide
<TR><TD>THICK_WIDTH&nbsp;&nbsp;&nbsp;	<TD>3	<TD>3 pixels wide
</TABLE>
upattern is a 16-bit pattern that applies only if linestyle is USERBIT_LINE (4). In that case, whenever a bit in the pattern word is 1, the corresponding pixel in the line is drawn in the current drawing color. For example, a solid line corresponds to a upattern of 0xFFFF (all pixels drawn), and a dashed line can correspond to a upattern of 0x3333 or 0x0F0F. If the linestyle parameter to setlinestyle is not USERBIT_LINE (in other words, if it is not equal to 4), you must still provide the upattern parameter, but it will be ignored.
<P>
Note:	The linestyle parameter does not affect arcs, circles, ellipses, or pie slices. Only the thickness parameter is used.

<P><DT><B>Return Value</B><DD>
If invalid input is passed to setlinestyle, graphresult returns -11, and the current line style remains unchanged.


<P><DT><B>See also</B>
<DD><A HREF="arc.html"> arc </A>
<DD><A HREF="bar3d.html"> bar3d </A>
<DD><A HREF="bar.html"> bar </A>
<DD><A HREF="circle.html"> circle </A>
<DD><A HREF="drawpoly.html"> drawpoly </A>
<DD><A HREF="ellipse.html"> ellipse </A>
<DD><A HREF="getlinesettings.html"> getlinesettings </A>
<DD><A HREF="graphresult.html"> graphresult </A>
<DD><A HREF="line.html"> line </A>
<DD><A HREF="linerel.html"> linerel </A>
<DD><A HREF="lineto.html"> lineto </A>
<DD><A HREF="pieslice.html"> pieslice </A>
<DD><A HREF="rectangle.html"> rectangle </A>


<P><DT><B>Example</B><DD>
<PRE>
/* setlinestyle example */ 

#include &lt;graphics.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;string.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;

/* the names of the line styles supported */
char *lname[] = { "SOLID_LINE", "DOTTED_LINE", "CENTER_LINE", "DASHED_LINE", "USERBIT_LINE" };

int main(void)
{
   /* request autodetection */
   int gdriver = DETECT, gmode, errorcode;
   int style, midx, midy, userpat;
   char stylestr[40];

   /* initialize graphics and local variables */
   initgraph(&gdriver, &gmode, "");


   /* read result of initialization */
   errorcode = graphresult();
   if (errorcode != grOk) {  /* an error occurred */
      printf("Graphics error: %s\n", grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit(1);               /* terminate with an error code */
   }

   midx = getmaxx() / 2;
   midy = getmaxy() / 2;

   /* a user-defined line pattern */
   /* binary: "0000000000000001" */
   userpat = 1;
   for (style=SOLID_LINE; style&lt;=USERBIT_LINE; style++)

   {
      /* select the line style */
      setlinestyle(style, userpat, 1);

      /* convert style into a string */
      strcpy(stylestr, lname[style]);

      /* draw a line */
      line(0, 0, midx-10, midy);


      /* draw a rectangle */
      rectangle(0, 0, getmaxx(), getmaxy());

      /* output a message */
      outtextxy(midx, midy, stylestr);

      /* wait for a key */
      getch();
      cleardevice();
   }

   /* clean up */
   closegraph();

   return 0;
}
</PRE>


</DL>
<HR>
<A HREF="index.html">Back to index</A>
